<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // let关键字就是作用于{}内 不存在变量的提升
        let name='sd';
        function fn(){
            // 暂时性死区 意思是在函数作用域中已经存在name的变量但是由于name是let不存在变量提升所以会提示没有初始化该变量
            console.log(name);
            let name='sds'
        }
        fn()

        // 经典面试题  i是全局的
        var arr = [];
        for (var i = 0; i < 2; i++) {
            arr[i] = function() {
                console.log(i);
                //     // 相当于执行了以下函数
                //     arr[0] = function() {
                //         console.log(i);
                //     }
                //     arr[1] = function() {
                //         console.log(i);
                //     }
                //     最后访问I就是2
            }
        }
        arr[0](); // 2 
        arr[1](); // 2


        let arr1 = [];
        for (let i = 0; i < 2; i++) {
            arr1[i] = function() {
                console.log(i);
            }
        }
        arr1[0](); // 0
        arr1[1](); // 1
    </script>
</body>

</html>